package com.lailai.service.impl;

import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.lailai.entity.Route;
import com.lailai.mapper.RouterMapper;
import com.lailai.service.RouterService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;

import java.util.Collections;
import java.util.List;
import java.util.Optional;

/**
 * 路由实现类
 *
 * @Author lgr
 * @Date 2025/6/27
 * @Description 路由实现类
 * @Wechat a983105834
 * @Email 983105834@qq.com
 * @Copyright <a href="www.lailai.ink">lailai个人空间</a>
 */
@Service
public class RouterServiceImpl extends ServiceImpl<RouterMapper, Route> implements RouterService {
    @Autowired
    private RouterMapper routerMapper;

    @Override
    public List<Route> list() {
        /**
         * @Description:
         * 使用 Optional.ofNullable() 包装可能为 null 的结果
         * 如果 super.list() 返回 null，则创建一个空的 Optional
         * 如果 super.list() 返回有效的列表，则创建包含该列表的 Optional
         *
         * 如果前面的 Optional 为空（即 super.list() 返回了 null）
         * 则返回一个空的不可变列表 Collections.emptyList()
         * 这样可以避免返回 null 给调用者，防止出现 NullPointerException
         */
        return Optional.ofNullable(super.list()).orElse(Collections.emptyList());
    }


    /**
     * 查询所有路由及其配置信息
     */
    public List<Route> listRoutesWithConfig() {
        return routerMapper.selectRoutesWithConfig();
    }

}
